<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        'use strict';

        function getAge() {
            // 今年 - 出生年
            let now = new Date().getFullYear();
            return now - this.birth;
        }

        var lucien = {
            name: '阿亮',
            birth: 1999,
            // 定义在对象里面的函数就叫方法
            // age: function () {
            //     // 今年 - 出生年
            //     let now = new Date().getFullYear();
            //     return now - this.birth;
            // }
            // 也可以把方法写在外面
            age: getAge
        }

        /**
         * 属性这样调用
         * lucien.name
         * 调用方法，一定要带 ()
         * lucien.age()
         */
        console.log(lucien.age());

        // apply
        // 可以控制 this 的指向

        // console.log(getAge()); // 这样用会报错，或者是 NaN，因为没有this指向的是window

        let age = getAge.apply(lucien, []); // this 指向了 lucien，参数为空
        console.log(age);
    </script>
</head>
<body>

</body>
</html>